Computer systems, including both individual systems and server systems that may include the components of multiple individual systems, commonly may be separated into two or more discrete portions known as partitions. Each partition may, for example, be logically and/or physically separated from the other partitions, and each may allow a different operating system (or a different copy of the same operating system) to run on that particular partition. A partition may be a “soft partition,” in which case it is typically only logically separated from the other partitions, or it may be a “hard partition,” in which case it is typically also physically and/or electrically separated in some manner from the other partitions. Accordingly, creation of a soft partition generally does not involve physical changes to the structure of the system hardware, whereas creation of a hard partition may involve physical changes to the underlying hardware.
In server systems, a plurality of hardware resources, including multiple processors, memory devices, and input/output devices and connections, may be included in a single interconnected server complex. The hardware resources of a server system may be disposed on various physically separated server modules, which are sometimes referred to as server “cells” or “blades.” In some cases, it may be desirable to divide such a server complex into multiple smaller systems by defining subsets of the server hardware resources to be used as independent system environments, in a form of hard partitioning. Furthermore, it may be desirable to divide each hard server partition into one or more soft partitions, each of which can support its own operating system without a further physical division of hardware resources.
When a hard partition is subdivided into soft partitions, some or all of the hardware resources of the hard partition generally are assigned to the various soft partitions. Software resident on the server system, which also may be referred to as firmware, may be used to inventory the hardware resources and to allocate them among the desired soft partitions. In existing systems, the operating system running on each soft partition typically must include a partition management program or some other modification configured to allow communication between the operating system and the firmware. This requires each operating system to be modified when installed on a soft partition, and also may slow system performance due to the possible allocation of the same hardware resources to more than one soft partition.
In light of the above, it would be advantageous to have partitioning systems and methods that can avoid the necessity of modifying each operating system to be used with a soft partition, and to overcome the performance issues often associated with allocating hardware resources to multiple soft partitions in existing systems. The present teachings solve these and other problems by providing systems and methods of subdividing a hard partition into one or more soft partitions using partition management programming installed entirely within firmware on a server system.